package blitting {
	import flash.geom.Rectangle;
	import views.Canvas;
	/**
	 * @author Charlie MacIsaac
	 */
	public class SpriteSheetDisplayObject {
		// PROPERTIES =============================================================================
		protected var _renderer : SpriteSheetRenderer;
		
		protected var _canvas : Canvas;
		protected var _frame : uint;
		
		protected var _position : Rectangle;
		
		// GETTERS + SETTERS ======================================================================
		public function set canvas(value : Canvas) : void { _canvas = value; }
		public function set frame(id : uint) : void { _frame = id; }
		
		public function set x(value : Number) : void { _position.x = value; }
		public function set y(value : Number) : void { _position.y = value; }
		
		public function get x() : Number { return _position.x; }
		public function get y() : Number { return _position.y; }
		public function get width() : Number { return _position.width; }
		public function get height() : Number { return _position.height; }
		
		// CONSTRUCTOR ============================================================================
		public function SpriteSheetDisplayObject(renderer : SpriteSheetRenderer) {
			_renderer = renderer;
			_position = new Rectangle(0, 0, _renderer.size.width, _renderer.size.height);
		}
		
		// PUBLIC =================================================================================
		public function render() : void {
			if (_canvas) _renderer.render(0, _canvas.bitmapData, _position.topLeft);
		}
		
		// PRIVATE ================================================================================
		// LISTENERS ==============================================================================
	}
}